Skip to content

sdstoehr/har-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HAR reader

Read HTTP Archives with Java.

<dependency>
  <groupId>de.sstoehr</groupId>
  <artifactId>har-reader</artifactId>
  <version>2.3.0</version>
</dependency>

Build Status codecov Maven Central

Usage

Reading HAR from File:

HarReader harReader = new HarReader();
Har har = harReader.readFromFile(new File("myhar.har"));
System.out.println(har.getLog().getCreator().getName());

Reading HAR from String:

HarReader harReader = new HarReader();
Har har = harReader.readFromString("{ ... HAR-JSON-Data ... }");

Some HAR generators use date formats, which are not according to the specification. You can tell HAR reader to ignore those fields instead of throwing an exception:

HarReader harReader = new HarReader();   
Har har = harReader.readFromFile(new File("myhar.har"), HarReaderMode.LAX);
Har har = harReader.readFromString("{ ... HAR-JSON-Data ... }", HarReaderMode.LAX);

You can also follow the next section and configure your own mapping configuration to deal with these fields.

Customizing HAR reader

As of version 2.0.0 you can create your own MapperFactory (DefaultMapperFactory)

public class MyMapperFactory implements MapperFactory {
    public ObjectMapper instance(HarReaderMode mode) {
        ObjectMapper mapper = new ObjectMapper();
        SimpleModule module = new SimpleModule();
        
        // configure Jackson object mapper as needed

        mapper.registerModule(module);
        return mapper;
    }
}

You can now use your configuration by instantiating the HarReader with your MapperFactory:

HarReader harReader = new HarReader(new MyMapperFactory());

Latest Releases

2.3.0 - 2023-11-17

  • Updated dependencies
  • Requires Java 8 or later: dropped support for Java 7

Details

2.2.1 - 2022-05-26

  • Updated dependencies
  • #82: Make sure default values from HAR entities satisfies specification

Details

2.2.0 - 2021-03-27

  • Updated dependencies
  • Added support for fields, which are not supported in official spec. You can access these fields using Map<String, Object> getAdditional()

Details

2.1.10 - 2020-10-05

  • Updated dependencies

Details

2.1.9 - 2020-06-30

  • Updated dependencies

This is the first release, which is provided both on GitHub and Maven Central repository.

Details

2.1.8 - 2020-05-24

  • Updated dependencies

Details

2.1.7 - 2019-11-05

  • Updated dependencies

Details

2.1.6 - 2019-10-04

  • Updated dependencies

Details

2.1.5 - 2019-09-06

  • Updated dependencies

Details

2.1.4 - 2019-05-24

  • Updated dependencies

Details

2.1.3 - 2018-10-18

Details

2.1.2 - 2018-08-02

  • Added support for several HTTP status codes, e.g. (308, 422 - 451, 505 - 511)

Details

2.1.1 - 2018-07-26

  • Added support for HTTP method: PATCH

Details

2.1.0 - 2018-03-11

  • You can now access additional fields, which are not part of the HAR spec:
response.getAdditional().get("_transferSize");

Details

2.0.3 - 2017-04-14

  • Added equals and hashCode methods

2.0.2 - 2016-11-21

  • Added CCM_POST HttpMethod to enum

2.0.1 - 2016-04-16

  • Ignore invalid integers in lax mode

Details

2.0.0 - 2015-08-30

  • HAR reader is now easier customizable. Use your own MapperFactory to adjust HAR reader for your project!
  • HAR reader threw exceptions, when required fields were empty. This behaviour was changed, so that you can now read non-standard-compliant HAR files

Details